package com.hmall.api.interceptor;

import cn.hutool.core.util.StrUtil;
import com.hmall.common.utils.UserContext;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;

@Component
public class UserInfoRequestInterceptor implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {

        // 先把从网关 获取 线程局变量 获取 userInfo
        String userInfo = UserContext.getUser().toString();

        // 判断 线程池局部变量中 是否存在该属性
        if (StrUtil.isEmpty(userInfo)){
            // 不存在该属性 之间返回
            return ;
        }

        //     利用参数 requestTemplate 给 请求头 添加属性  userInfo，来让 微服务之间的远程调用也可以有 token
        requestTemplate.header("user-info", userInfo);
    }
}
